obj-m := gtp.o

KERNELVERSION := $(shell uname -r)
KERNELDIR := /lib/modules/$(KERNELVERSION)/build/
CROSS_COMPILE :=
MODULEDIR := /lib/modules/$(KERNELVERSION)/lib/
#ARCH := i386
#ARCH := x86_64
#ARCH := mips
#ARCH := arm
KERNELDIR = /home/teawater/kernel/2.6.18/b26/

PWD  := $(shell pwd)
ifeq ($(D),1)
EXTRA_CFLAGS += -DGTPDEBUG
endif
ifeq ($(F),1)
EXTRA_CFLAGS += -DFRAME_ALLOC_RECORD
endif

default: getmod getframe gtp.ko

clean:
	rm -rf getmod
	rm -rf getframe
ifneq ($(ARCH),)
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) clean
else
	$(MAKE) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) clean
endif

install: default
	cp getmod /sbin/
	cp getframe /sbin/
	mkdir -p $(MODULEDIR)
	cp gtp.ko $(MODULEDIR)
	depmod -a

uninstall:
	rm -rf /sbin/getmod
	rm -rf /sbin/getframe
	rm -rf $(MODULEDIR)gtp.ko
	depmod -a

getmod: getmod.c
ifeq ($(D),1)
	$(CROSS_COMPILE)gcc -g -o getmod getmod.c
else
	$(CROSS_COMPILE)gcc -O2 -o getmod getmod.c
endif

getframe: getframe.c
ifeq ($(D),1)
	$(CROSS_COMPILE)gcc -g -o getframe getframe.c
else
	$(CROSS_COMPILE)gcc -O2 -o getframe getframe.c
endif

gtp.ko: gtp.c
ifneq ($(ARCH),)
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
else
	$(MAKE) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
endif
